<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <button>点我</button>
</body>
<script>
    // - 你定义的
    // - 你没有直接调用
    // - 但最终它执行了(在特定条件或时刻)


  // 常见的回调函数?
  //   - DOM事件函数
  // document.querySelector("button").onclick = function(){
  //     console.log("1")
  // }
  //   - 定时器函数
  //   setTimeout(function(){
  //       console.log(1)
  //   })
  //   - `ajax`回调函数(后面学)
  //   const xhr = new XMLHttpRequest();
  //   xhr.open("get","./13-回调函数.html");
  //   xhr.send();
  //   xhr.onload = function(){
  //       console.log(xhr.response);// 输出响应体
  //   }
  //   - 生命周期回调函数(后面学)


    // 回调函数的作用
    // function ajax(url,cb){
    //     const xhr = new XMLHttpRequest();
    //     xhr.open("get",url);
    //     xhr.send();
    //     xhr.onload = function(){
    //        cb(xhr.response);
    //     }
    // }
    // // 输出
    // ajax("./1-javascript.html",function(res){
    //     console.log(res)
    // });
    // // 弹出
    // ajax("./1-javascript.html",function(res){
    //     alert(res);
    // });

    function ajax(url){
        return new Promise(function(resolve){
            const xhr = new XMLHttpRequest();
            xhr.open("get",url);
            xhr.send();
            xhr.onload = function(){
                resolve(xhr.response);
            }
        })
    }
    // 1- then
    // ajax("./1-javascript.html").then(res=>{
    //     console.log(res);
    // })

    // 2- async await

    (async function(){
        const res = await ajax("./1-javascript.html");
        alert(res);
    })();





</script>
</html>